ArcGIS使用(二)ArcGIS加载天地图

您所在的位置:网站首页 arcgis 添加天地图 ArcGIS使用(二)ArcGIS加载天地图

ArcGIS使用(二)ArcGIS加载天地图

2023-10-22 05:51| 来源: 网络整理| 查看: 265

ArcGIS引入天地图作为底图:

1.引入这两个类:WebTileLayer 和 TileInfo

"esri/layers/WebTileLayer", "esri/layers/support/TileInfo", require([ "esri/Map", "esri/layers/WebTileLayer", 'esri/layers/support/TileInfo', 'esri/views/MapView', 'dojo/domReady!' ], function (Map, WebTileLayer, TileInfo, MapView) {

2.设置服务地址和tk

var tiandituBaseUrl = "http://{subDomain}.tianditu.com"; //天地图服务地址 var token = "174705aebfe31b79b3587279e211cb9a"; //天地图token

设定瓦片信息:

var tileInfo = new TileInfo({ dpi: 90.71428571427429, rows: 256, cols: 256, compressionQuality: 0, origin: { x: -180, y: 90 }, spatialReference: { wkid: 4326 }, lods: [ //定义平铺方案的细节级别数组 {level: 2, levelValue: 2, resolution: 0.3515625, scale: 147748796.52937502}, {level: 3, levelValue: 3, resolution: 0.17578125, scale: 73874398.264687508}, {level: 4, levelValue: 4, resolution: 0.087890625, scale: 36937199.132343754}, {level: 5, levelValue: 5, resolution: 0.0439453125, scale: 18468599.566171877}, {level: 6, levelValue: 6, resolution: 0.02197265625, scale: 9234299.7830859385}, {level: 7, levelValue: 7, resolution: 0.010986328125, scale: 4617149.8915429693}, {level: 8, levelValue: 8, resolution: 0.0054931640625, scale: 2308574.9457714846}, {level: 9, levelValue: 9, resolution: 0.00274658203125, scale: 1154287.4728857423}, {level: 10, levelValue: 10, resolution: 0.001373291015625, scale: 577143.73644287116}, {level: 11, levelValue: 11, resolution: 0.0006866455078125, scale: 288571.86822143558}, {level: 12, levelValue: 12, resolution: 0.00034332275390625, scale: 144285.93411071779}, {level: 13, levelValue: 13, resolution: 0.000171661376953125, scale: 72142.967055358895}, {level: 14, levelValue: 14, resolution: 8.58306884765625e-005, scale: 36071.483527679447}, {level: 15, levelValue: 15, resolution: 4.291534423828125e-005, scale: 18035.741763839724}, {level: 16, levelValue: 16, resolution: 2.1457672119140625e-005, scale: 9017.8708819198619}, {level: 17, levelValue: 17, resolution: 1.0728836059570313e-005, scale: 4508.9354409599309}, {level: 18, levelValue: 18, resolution: 5.3644180297851563e-006, scale: 2254.4677204799655}, {level: 19, levelValue: 19, resolution: 2.68220901489257815e-006, scale: 1127.23386023998275}, {level: 20, levelValue: 2, resolution: 1.341104507446289075e-006, scale: 563.616930119991375} ] }) //地图(经纬度) var tiledLayer = new WebTileLayer({ urlTemplate: tiandituBaseUrl + "/DataServer?T=img_c&x={col}&y={row}&l={level}&tk=" + token, subDomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"], tileInfo: tileInfo }); //注记(经纬度) var tiledLayerAnno = new WebTileLayer({ urlTemplate: tiandituBaseUrl + "/DataServer?T=cia_c&x={col}&y={row}&l={level}&tk=" + token, subDomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"], tileInfo: tileInfo }); vec_c, 行政区划图cva_c,行政区划图文字标注img_c, 影像底图cia_c, 影像地图,文字标注ter_c, 地形图cta_c, 地形图,文字标注

       加载地图时:使用了 {subsDomain},{col},{row},{level}分别替换服务器列表,瓦片列编号,瓦片行编号,当前缩放级别;

http://{subDomain}.tianditu.com/DataServer?T=vec_c&x={col}&y={row}&l={level}&tk=" + token http://t4.tianditu.com/DataServer?T=vec_c&x=27&y=3&l=5$tk=174705aebfe31b79b3587279e211cb9a

      天地图瓦片可用子域有八个:

subDomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],

    创建地图,不设置底图:加载天地图,需要设置map、mapview的wkid为4326

// 创建地图,不设置底图,如果设置底图会造成坐标系无法被转换成 ESPG:4326 (WGS1984) var map = new Map({ spatialReference: { wkid: 4326 }, basemap: { baseLayers: [tiledLayer, tiledLayerAnno]} }); var view = new MapView({ container: "viewDiv", spatialReference: { wkid: 4326 }, map: map, center:[118.183013,39.638808], zoom:5, scale: 2000000 });

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

高版本好像不用那么麻烦了:直接就能用(4.15):

//引入天地图底图 var tiledLayer = new WebTileLayer({ urlTemplate: "http://{subDomain}.tianditu.gov.cn/DataServer?T=vec_w&x={col}&y={row}&l={level}&tk=174705aebfe31b79b3587279e211cb9a", subDomains: ["t0", "t1", "t2", "t3","t4", "t5", "t6", "t7"], }); var tiledLayer_wz = new WebTileLayer({ urlTemplate: "http://{subDomain}.tianditu.gov.cn/DataServer?T=cva_w&x={col}&y={row}&l={level}&tk=174705aebfe31b79b3587279e211cb9a", subDomains: ["t0", "t1", "t2", "t3","t4", "t5", "t6", "t7"], }); var map = new Map({ basemap: { baseLayers: [tiledLayer,tiledLayer_wz]} }); var view = new MapView({ container: "viewDiv", map: map, center:[118.183013,39.638808], zoom:11 });

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3